SELinux: Ensure we label /var, and fix /etc merge wrt xattrs
authorColin Walters <walters@verbum.org>
Sun, 2 Feb 2014 16:32:52 +0000 (11:32 -0500)
committerColin Walters <walters@verbum.org>
Sun, 2 Feb 2014 16:32:52 +0000 (11:32 -0500)
commite580a88f4ed15b9af3ee9355a3ef5a4dc1cd82ab
tree0192d0fa15cd2b7832d240ffbaba814553f73b63
parentf86a132eb0c0a9ac9212b8471f2e6185a7325f50
SELinux: Ensure we label /var, and fix /etc merge wrt xattrs

First, /var needs to be labeled at least once.  We should probably
rearrange things so that /var is only created (and labeled) on the
first deployment, but this patch adds a /var/.ostree-selabeled file
instead.

Second, when doing the /etc merge, we compare the xattrs of the old
/usr/etc versus the current /etc.  The problem with that is that the
policy has different labels for /usr/etc on disk than the real /etc.

The correct fix for this is a bit invasive - we have to take the
physical content of the old /usr/etc, but compare the labels as if
they were really in /etc.

Instead for now, just ignore changes to xattrs.  If the file
content/mode changes, then we take the new file (including any changed
xattrs).

Bottom line: just doing chcon -t blah_t /etc/foo.conf may be lost on
upgrade (for now).
src/libostree/ostree-diff.c
src/libostree/ostree-diff.h
src/libostree/ostree-sysroot-deploy.c
src/ostree/ot-admin-builtin-diff.c
src/ostree/ot-builtin-diff.c